package 备战春招12月27日开始刷题.牛客网的题目;
import java.util.*;
//12月27日
//刷题地址： https://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c?tpId=117&&tqId=37762&rp=1&ru=/activity/oj&qru=/ta/job-code-high/question-ranking
public class simple_NC31第一个只出现一次的字符1227 {

        public int FirstNotRepeatingChar(String str) {
            HashMap<Character,Boolean> map = new HashMap<>();
            char[] chars = str.toCharArray();
            // 初始化哈希表，重复出现的置为false，否则为true
            for(char c:chars){
                if(map.containsKey(c)){
                    map.put(c,false);
                }else{
                    map.put(c,true);
                }
            }
            // 二次遍历字符数组，若其在哈希表中的value为true，则返回下标
            for(int i = 0; i < chars.length; i++){
                if(map.get(chars[i])){
                    return i;
                }
            }
            // 没有符合条件的则返回-1
            return -1;
        }

    public static void main(String[] args) {
        System.out.println(new simple_NC31第一个只出现一次的字符1227().FirstNotRepeatingChar("google"));
        System.out.println(new simple_NC31第一个只出现一次的字符1227().FirstNotRepeatingChar("aa"));
    }
}
